雜湊Hash,是一個Key跟Value的組合,大概是長的像這樣{:key => "value"}兩兩為一組的組合,我們就稱之為Hash。
一種是箭頭格式的寫法
hash = { :name => "Nina", :age => 18 }
另一種較新的寫法,類似JSON格式的寫法,據說是在Ruby1.9版後來加入的
hash = { name: "Echo", :age => 35 }
這兩種寫法最後輸出的結果都會長的一樣喔!
所以你想寫哪一種方式,可以依照個人喜好選擇喔 ^^d
> hash = { :name => "Nina", :age => 18 } #=> {:name=>"Nina", :age=>18}
> hash = { name: "Echo", :age => 35 } #=> {:name=>"Echo", :age=>35}
記得昨天說到Array的時候,有利用arr[0]的方式取的我們要的元素,hash也是如此。
假設我有一筆資料,我想取得Name的資料
Zoo = [{ID: 01}, {Name: "無尾熊館"}, {Category: "室內"}, {Info: "無尾熊為最具代表性的有袋目動物之一"}]
> puts Zoo[:ID] #=> 1
> puts Zoo[:Name] #=> 無尾熊館
> puts Zoo[:Category] #=> 室內
其實這觀念很簡單,還記得each嗎?
student = {Name: "Adora", age: 18, address: "TaipeiCity"}
student.each do |st|
p st
end
# [:Name, "Adora"]
# [:age, 18]
# [:address, "TaipeiCity"]
又或者
student = {Name: "Adora", address: "TaipeiCity"}
student.each do |key,value|
p key
p value
end
# :Name
# "Adora"
# :address
# "TaipeiCity"
也可以使用keys
以及values
的方法,這樣取我們要的所有的key以及所有的value
animal = {Name: "cat", age: 7, Adoptor: "Aimee"}
p animal.keys # [:Name, :age, :Adoptor]
p animal.values # ["cat", 7, "Aimee"]
先不管鐵人賽第13天,今天是感冒第2天,紀念一下